import React,{Component} from "react";

interface IState {
    count :number
}

export default class StateDemo extends Component<any, IState>{
    /**
     * 官方推荐的state的初始化
     * @param props
     * @param context
     */
    constructor(props:any,context:any) {
        super(props,context);
        this.state ={
            count : 0
        }
    }


    componentDidMount(): void {
        /**
         * state 是异步操作
         */
        // setInterval( () =>{
        //     this.setState({
        //         count :this.state.count +1
        //         }
        //     )}
        // ,10000)
        // for (let i = 0; i<100;i++){
        //     console.log(this.state.count)
        //     setInterval(() => {
        //         this.setState( {
        //             count :this.state.count+1
        //         })
        //     })
        // }
        /**
         * 官方推荐
         * 正确的更新state的引用方法
         */
        for (let i=0;i<100;i++){
            console.log(this.state.count)
            this.setState((state, props) =>({
                count : state.count+1
            }))
        }
    }

    render() {
        return (
            <div>
                <h1>{this.state.count}</h1>
            </div>
        )
    }
}
